#ifndef MENU_H_
#define MENU_H_

#include "MenuException.h"
#include "VetorTemplate.h"
#include <string>

using namespace std;
using namespace entregadepedidos::util::entidades::vetor;

namespace entregadepedidos{

	namespace util{

		namespace entidades{
		
			namespace menu{
				
				class Menu
				
				{
				private:
					
					string titulo;
					VetorTemplate<string> *menuItens;
					int numeroItens;
					
				public:
					
					//Construtor
					Menu();
					Menu(const int &numeroItens);
					
					// Destrutor
					virtual ~Menu();
					
					// Insere um titulo a lista
					void setTitulo(const string &titulo);
					void setNumeroItens(const int &numeroItens);
					
					string getTitulo()const;
					int getNumeroItens()const;
					
					// Adiciona um item na lista
					void adicionaItem(const int &numeroItem, const string &nomeItem)throw(MenuException);
					
					// Imprime o menu
					void imprime()const throw(MenuException);
					
					// Imprime somente o cabecalho
					void imprimeCabecalho()const throw(MenuException);
									
				};
				
			}
		}	
	}
}

#endif /*MENU_H_*/
